const { getToken } = require("../utils/token");
const {getUser , addData} = require('../model/users');

// 写路由函数的  会有很多  导出的时候也要多文件导出   --- 

module.exports.loginHandler = async (req , res) => {
    const {username , password} = req.body ;
    // 查询这个人是否是否存在
    const result = await getUser({username}) ;
    console.log(result);  

    const {code , data} = result ;
    if(code === 0) {
        return res.send({code : 0 , msg : '数据库错误'});
    }
    if(data) {
        // 判断密码是否正确
        if(data.password === password) {

            // 生成token  
            const info = {id : data.id , username} ;
            const token = getToken(info) ;
            res.send({code: 1 , msg : '登陆成功' , token , id : data.id} ) ;
        } else {
            res.send({code: 0 , msg : '用户名或者密码错误'}) ;
        }
    } else {
        res.send({code: 0 , msg : '用户名不存在'}) ;
    }
    
}


exports.rpwdHandler = async (req , res) => {
    // 先判断id和密码是否匹配    

    // 修改
}



exports.regHandler = async (req , res) => {
    const {username , password} = req.body ;
    // 判断用户名是否已被注册
    const result = await getUser({username}) ;
    const {code , data} = result ;
    if(code === 0) {
        return res.send({code : 0 , msg : '数据库错误'});
    }

    // 如果data值不是null
    if(data) {
        return res.send({code : 0 , msg : '用户名已被注册'});
    } 

    // 可以注册
    // const results = await addData({username , password}) ;
    // if(results.code === 0) {
    //     return res.send({code : 0 , msg : '数据库错误'});
    // }
    // res.send({code : 1 , msg : '注册成功'});

    addData({username , password}).then(data => {
        if(code === 0) {
            return res.send({code : 0 , msg : '数据库错误'});
        }
        res.send({code : 1 , msg : '注册成功'});
    })
}